package com.woniuxy.rms.controller;

import com.github.pagehelper.PageInfo;
import com.woniuxy.rms.advice.LogPoint;
import com.woniuxy.rms.pojo.Complain;
import com.woniuxy.rms.service.ComplainService;
import com.woniuxy.rms.util.ComplainStatus;
import com.woniuxy.rms.util.DataResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;


/**
 * Auther: ChenGang  <br/>
 * Date: 2020/3/30 0030:下午 5:13  <br/>
 * Description:投诉管理控制层
 */
@Controller
@RequestMapping("/complain")
public class ComplainController {

    @Autowired
    private ComplainService complainService;

    /**
     * Description : 获取投诉列表  <br/>
     * ChangeLog : 1. 创建 (2020/3/30 0030 下午 5:43 [Administrator]);
     * @param currentPage 当前页
     * @param pageSize 页大小
     * @param status 处理状态
     * @param complainType 被投诉类型 0-动态  1-商品   2-服务  3-活动
     * @return com.woniuxy.rms.util.DataResult
    */
    @GetMapping("/list")
    @ResponseBody
    @LogPoint("查看投诉列表")
    public DataResult list(@RequestParam(defaultValue = "1",required = false,name = "page") Integer currentPage,
                           @RequestParam(defaultValue = "10",required = false,name = "limit") Integer pageSize,
                           Integer status,Integer complainType){
        List<Complain> complains = complainService.findByPage(currentPage,pageSize,status,complainType);
        PageInfo info = new PageInfo(complains);
        return DataResult.success(info);
    }
    /**
     * Description : 投诉预处理  <br/>
     * ChangeLog : 1. 创建 (2020/4/1 0001 下午 6:19 [Administrator]);
     * @param id  投诉id
     * @return org.springframework.web.servlet.ModelAndView
    */
    @GetMapping("/preDispose")
    public ModelAndView preDispose(Long id,ModelAndView model){
        //跳转到处理投诉的页面
        model.setViewName("/complain/dispose");
        //拉取投诉信息
        Complain complain = complainService.findById(id);
        //将投诉状态改为处理中  1-》处理中
        complainService.complainType(id, ComplainStatus.DISPOSING);
        model.addObject("complain",complain);
        return model;
    }

    /**
     * Description : 投诉有效的处理  <br/>
     * ChangeLog : 1. 创建 (2020/4/1 0001 下午 9:26 [Administrator]);
     * @param complain
     * @return com.woniuxy.rms.util.DataResult
    */
    @PutMapping("/pass")
    @ResponseBody
    public DataResult pass(Complain complain){
        return complainService.disposePass(complain);
    }

}